

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"695AA254-93BE-4CA8-9530-8C8E2CD160E7"}
 */
function calendarioDesde(event) {
	var $hoy = application.getServerTimeStamp()
	var $fDesde = new Date($hoy.getFullYear(), $hoy.getMonth(),$hoy.getDate(), 0,0,0,0)
	var $fHasta = new Date($hoy.getFullYear() +1, $hoy.getMonth(),$hoy.getDate(), 0,0,0,0)
	var $form = globals.mostrarCalendarioMes($hoy.getMonth()+1, $hoy.getFullYear(), $fDesde, $fHasta, 'POPUP', null, 'hoteleria_'+gcadena_to_cadenas.estilo)
	plugins.window.showFormPopup(elements.fld_fecha_desde,forms[$form],foundset.getRecord(foundset.getSelectedIndex()),'fecha_desde')
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"1FD249DC-440F-4998-83FE-26F09EB9451E"}
 */
function calendarioHasta(event) {
	var $fDesde = new Date(fecha_desde.getFullYear(), fecha_desde.getMonth(),fecha_desde.getDate(), 0,0,0,0)
	var $fHasta = new Date(fecha_desde.getFullYear() +1, fecha_desde.getMonth(),fecha_desde.getDate(), 0,0,0,0)
	var $form = globals.mostrarCalendarioMes($fDesde.getMonth()+1, $fDesde.getFullYear(), $fDesde, $fHasta, 'POPUP', null, 'hoteleria_'+gcadena_to_cadenas.estilo)
	plugins.window.showFormPopup(elements.fld_fecha_hasta,forms[$form],foundset.getRecord(foundset.getSelectedIndex()),'fecha_hasta')

}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"D3E67EC9-861E-4216-B043-89D72E45E44E"}
 */
function nuevaHabitacion(event) {
	var $sql = 'SELECT tipo_habitacion_id FROM tipos_habitacion '+
				'WHERE tipo_habitacion_id NOT IN (SELECT tipo_habitacion_id FROM promociones_dtl WHERE promociones_cab_id = ?) '+
				'AND es_habitacion = 1 ORDER BY limite_adulto ASC'
	var $args = [promociones_cab_id]
	var $ds = databaseManager.getDataSetByQuery('hoteleria',$sql,$args,-1)
	
	var $win = application.createWindow('NUEVA_HABITACION',JSWindow.MODAL_DIALOG)
	$win.undecorated = true
	forms.promociones_dtl_alta.fFormLlama = 'promociones_cab_dtl'
	forms.promociones_dtl_alta.controller.loadRecords($ds)
	forms.promociones_dtl_alta.controller.show($win)
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"E147AA0B-6FA3-435B-BF7C-1387314B8695"}
 */
function cargarFoto(event) {
	plugins.file.showFileOpenDialog(null, null, false, new Array("Images", "jpg", "gif", "png", "*"), grabarFoto, 'Seleccione la foto')
}

/**
 * @param {Array<plugins.file.JSFile>} imagen
 * 
 * @properties={typeid:24,uuid:"CEDD3773-7DB3-4410-BE5E-FC83C1FD15DF"}
 */
function grabarFoto(imagen)
{
	var $img = plugins.images.getImage(imagen[0].getBytes());
	promociones_cab_to_promociones_fotos.foto = $img
}
/**
 * @properties={typeid:24,uuid:"617A6296-FECE-4A19-8393-91BF4AD40A10"}
 */
function guardar() {
	if (descripcion == null || fecha_desde == null || fecha_hasta == null || porc_descuento == null)
	{
		globals.DIALOGS.showWarningDialog('Aviso','Por favor, ingrese todos los campos obligatorios','OK')
		return false
	}
	if (valida() == false)
	{
		globals.DIALOGS.showErrorDialog('Aviso','La descripción ya existe. Por favor, ingrese otra','OK')
		return false
	}
	if (promociones_cab_to_promociones_dtl.getSize() == 0)
	{
		globals.DIALOGS.showErrorDialog('Aviso','La promoción debe aplicarse, al menos, a una habitación','OK')
		return false
	}
	if (databaseManager.saveData() == true)
	{
		globals.DIALOGS.showInfoDialog('Aviso','Datos modificados con éxito','OK')
		return true
	}
	else
	{
		globals.DIALOGS.showWarningDialog('Aviso','Ocurrio un error al grabar. Inténtelo nuevamente', 'OK')
		return false
	}
}

/**
 * @properties={typeid:24,uuid:"755117C9-2952-4519-85B5-3A88CEC392ED"}
 */
function valida()
{
	var $sql = 'SELECT promociones_cab_id FROM promociones_cab WHERE upper(descripcion) = upper(?) AND hotel_id = ? AND promociones_cab_id = ?'
	var $args = [descripcion, globals.gHotelId, promociones_cab_id]
	var $ds = databaseManager.getDataSetByQuery('hoteleria',$sql,$args,-1)
	if ($ds.getMaxRowIndex() == 0)
		return true
	return false
}

/**
 * @properties={typeid:24,uuid:"64E9045D-0AD4-4FF4-BB29-BB4123D1438D"}
 */
function cancelar() {
	databaseManager.revertEditedRecords()
}

/**
 * Callback method for when form is shown.
 *
 * @param {Boolean} firstShow form is shown first time after load
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"36B3771C-A311-42BE-8E09-D02E6753A3F3"}
 */
function onShow(firstShow, event) {
	databaseManager.setAutoSave(false)
}

/**
 * Handle hide window.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"CAB141FF-C714-4D6B-86C4-488AD8D4BE4A"}
 */
function onHide(event) {
	databaseManager.revertEditedRecords()
	databaseManager.setAutoSave(true)
	return true
}
